const { getSumDays } = require("../../../utils/util.js");
var util = require("../../../utils/util.js");

Page({
  data: {
    listCompleted: [],
    listDoing: [],
    listComing: [],
    bNew: false,
    // 活动状态 0(未开始) 1(进行中) 2(已结束)
  },

  // 页面加载完成触发一次，仅一次
  
  onLoad() {
    this.initData();
  },
  onShow(options) {
    this.initData();
  },
  onPullDownRefresh(){
    this.initData();
  },

  
  // 转到打卡详情页面
  edit(e) {
    // e  事件对象
    // e.currentTarget  当前活动对象，list中的某项
    var id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: '../detail/detail?id=' + id
    })
  },

  //获取最后一次更新时间
  lastDate(arr){
    var lastdate;
    if (arr.length) {
      lastdate = arr[arr.length-1].date;
    }
    return lastdate;
  },

  // 登录时，返回所有参与的活动（自己创建的+参与别人的） 
  // 保存在本地缓存中
  // 有修改或者别的，修改远程数据库，但是数据仍读取本地
  initData() {

    var arr = wx.getStorageSync('activity');
    var listDoing = []; 
    var listComing = [];
    var listCompleted = [];
    var bNew = false;

    if (arr.length && arr.length > 0) {

      arr.forEach((item, i) => {
        var data = wx.getStorageSync('signin' + item.id);
        var beginDate = item.beginDate;
        var endDate = item.endDate;
        var punchCount = data.punchCount ? data.punchCount : 0;
        var arrRecord = data.arrRecord ? data.arrRecord : [];
        var updateTime = this.lastDate(arrRecord);
        var lengthR = arrRecord.length;
        
        //var uTime = new Date() = arrRecord[arrRecord.length-1].date;
        
        //console.log(uTime);
        
        var iTaskState = util.retTaskState(beginDate, endDate);
        var bPunched = util.retPunched(item.id);

        // 定义变量要赋值，明确变量类型，不然赋值会不成功
        var d = {
          id: item.id,
          title: item.title,
          sumDays: item.sumDays,
          punchCount: punchCount,
          arrRecord: arrRecord,
          updateTime: updateTime,
          //uTime: uTime,
          beginTime: beginDate,
          endTime: endDate,
          
          // btnState: 按钮文字
          btnState: util.getBtnText(iTaskState, bPunched),
          // 活动未开始 or 今天已打卡
          disabled: iTaskState != 1 || bPunched,
          // 显示开始时间（活动未开始） 还是 结束时间
          beginShow: iTaskState == 0 ? true : false
        };

        // 0 未开始  1 进行中 2 已结束
        switch (iTaskState) {
          case 0:
            listComing.push(d);
            break;
          case 1:
            listDoing.push(d);
            break;
          case 2:
            listCompleted.push(d);
            break;
        }
      })
    } else {
      bNew = true
    }
    // 如果setData写在if里，onShow调用的时候如果arr为空，list将不能被重新赋值。
    // so 删除最后一个活动返回时会保留显示最后一个活动，因为之前的List残存，又没有被重新赋值
    this.setData({
      listCompleted: listCompleted,
      listDoing: listDoing,
      listComing: listComing,
      bNew: bNew
    })
  },

  // // 打卡记录、勋章
  // initPunchData(id) {

  //   var data = wx.getStorageSync('signin' + id);

  //   // 每次打卡详细记录 data.arrRecord
  //   var arrRecord = data.arrRecord ? data.arrRecord : [];

  //   // 打卡情况总览 date.reconds
  //   var records = data.records ? data.records : [];

  //   // 已打卡天数
  //   var punchCount = data.punchCount ? data.punchCount : 0;

  //   // 最长累计打卡天数
  //   var serialMaxDays = data.serialMaxDays ? data.serialMaxDays : 0;

  //   // 打卡已持续天数 data.lastedDays
  //   var endD = util.compareDate(this.data.endDate, new Date()) > 0 ? util.formatDate(new Date()) : this.data.endDate;
  //   var lastedDays = util.getSumDays(this.data.beginDate, endD);

  //   var d = [];
  //   for (var i = 0; i < lastedDays; i++) {
  //     if (records && records[i]) {
  //       d.push(true);
  //     } else {
  //       d.push(false);
  //     }
  //   }
  //   console.log('打卡记录总览赋值', d)
  //   this.setData({
  //     punchCount: punchCount,
  //     serialMaxDays: serialMaxDays,
  //     activity: d,
  //     arrRecord: arrRecord
  //   })
  // },

})
